package univ.lille1.fr.car.ejb;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

@Entity
@Table(name = "Auteur")
@NamedQueries(value={
		@NamedQuery(name="MaxID", query="select MAX(a.auteurId) from Auteur a"),
		@NamedQuery(name="ExistAuthor", query="select a.auteurId, a.nom, a.prenom from Auteur a where a.nom like :nom and a.prenom like :prenom")
})
public class Auteur implements Serializable{
	private static final long serialVersionUID = 5744887686614012036L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO) 
	private long auteurId;
	private String nom;
	private String prenom;
	
	@ManyToMany
	private Set<Livre> livres;
	
	public Auteur(){
		this.livres = new HashSet<Livre>();
	}

	public Auteur(String nom, String prenom) {
		this.nom = nom;
		this.prenom = prenom;
		this.livres = new HashSet<Livre>();
	}
	
	public Auteur(long auteurId, String nom, String prenom) {
		this.auteurId = auteurId;
		this.nom = nom;
		this.prenom = prenom;
	}

	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}

	public String getPrenom() {
		return prenom;
	}

	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}

	public long getAuteurId() {
		return auteurId;
	}

	public void setAuteurId(long auteurId) {
		this.auteurId = auteurId;
	}

	public Set<Livre> getLivres() {
		return livres;
	}

	public void setLivres(Set<Livre> livres) {
		this.livres = livres;
	}

	
}
